package com.tql.mall.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tql.mall.model.product.BaseAttrInfo;
import com.tql.mall.model.product.SkuInfo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @Author: tyk
 * @Date: 2023/5/22 15:02
 * @Description:
 */
public interface SkuService {

    /**
     * 保存SkuInfo
     */
    void saveSkuInfo(SkuInfo skuInfo);

    /**
     * 获取sku列表
     */
    IPage<SkuInfo> skuList(Long shopId, Page<SkuInfo> pageInfo);

    /**
     * 商品上架
     */
    void onSale(Long skuId);

    /**
     * 商品下架
     */
    void offSale(Long skuId);


    /**
     * 根据skuId查看sku信息和图片列表
     */
    SkuInfo getSkuInfo(Long skuId);

    /**
     * 根据skuId查询实时价格
     */
    BigDecimal getSkuPrice(Long skuId);

    /**
     * 根据spuId获取销售属性值ID与skuId的映射
     */
    Map<String, Long> getSkuValueIdsMap(Long spuId);

    /**
     * 根据skuId获取平台属性集合
     */
    List<BaseAttrInfo> getBaseAttrInfoList(Long skuId);
}
